HAR ファイルの機密情報をマスクするツールについて紹介します
こんにちは。アノテーションの中村 (誠) です。
今回は HAR ファイルの機密情報をマスクするツールについて紹介します。
注意事項
本記事で紹介しているツールですべての機密情報を削除できる保証はないため、情報提供前に機密情報が残っていないかを必ず確認してください。
先にツール紹介
詳細は後述しますが、先にツールへのリンクだけ紹介しておきます。
HAR ファイルとは
以下の弊社ブログでも記載されていますが、HTTP アーカイブ (HAR) ファイルは、最新のネットワークアクティビティをブラウザで記録した JSON ファイルです。
AWS サポートへの問い合わせ時に HAR ファイルの取得および共有が必要なケースもあるため、AWS ナレッジセンターでも紹介されています。
トラブルシューティングの際に必要な HAR ファイルですが、場合によってはパスワードや Cookie などの機密情報がキャプチャされている場合があります。
弊社テクニカルサポートおよび AWS サポートでは、お客様から共有頂く情報に機密情報が含まれる場合には、必ずマスクしたうえで共有頂くようお願いしています。
機密情報が含まれる場合は、確実にマスクしてください。
一括での置換が難しい
HAR ファイルには多数の Cookie などが記載されている場合もあり、すべての機密情報を手作業でマスクするには時間がかかる場合もあります。
また、以下のように機密情報が HAR ファイルの JSON 内で一定の形式ではない場合もあるため、テキストエディタでの置換が難しい場合もあります。
{
"name": "cookie",
"value": "xxxxx"
}
{
"cookies": [
{
"name": "cookie-name",
"value": "xxxx",
"path": "/",
"domain": "example.xom",
"expires": "yyyy-mm-ddThh:mm:ss.000Z",
"httpOnly": true,
"secure": true,
"sameSite": "None"
}
]
}
試しに AWS のマネジメントコンソールで HAR ファイルを取得し、テキストエディタで cookie と検索すると、1,500 件ヒットしました。
このすべてを手作業でマスクするのは非常に効率が悪いと思います。
もちろんセキュリティ上機密情報をマスクするのは必須なのですが、エンジニアがやりたいことは開発や運用作業であって、機密情報のマスクではないはずです。
そこで、HAR ファイルに含まれる機密情報を一括でマスクするツールについて調査したところ、冒頭に記載した 3 つのツールを見つけたので紹介します。
置換ツール 1 HAR Sanitizer
1 つ目のツールは、HAR Sanitizer です。
こちらのツールは、Google の GitHub リポジトリにありますが、リポジトリ内でも Google の公式製品ではないことが明記されています。
使い方は簡単で、上記 GitHub にアクセスし、ライブバージョンという以下の URL にアクセスするだけです。
https://har-sanitizer.appspot.com/
上記の URL にアクセスすると、以下の画面が表示されます。
右上の「LOAD HAR」をクリックして HAR ファイルを選択すると、「COOKIES」, 「HEADERS」, 「URLQUERY/POSTDATA PARAMS」, 「CONTENT MIMETYPES」の 4 つが表示されます。
各項目ごとに、チェックボックスがあり、チェックボックスをオンにすることで対象の項目がマスク対象となります。
試しにダミーの HAR ファイルを使用し、「COOKIES」で「All Cookies」を選択して HAR ファイルをダウンロードします。
ダウンロードした HAR ファイルで Cookie の値を確認すると、以下のようにマスクされていました。
{
"cookies": [
{
"name": "1P_JAR",
"value": "[1P_JAR redacted]",
"path": "/",
"domain": "example.xom",
"expires": "yyyy-mm-ddThh:mm:ss.000Z",
"httpOnly": true,
"secure": true,
"secure": true,
"sameSite": "None"
}
]
}
どうやら Cookie の 値を、[cookie-name redacted] に置換するという挙動のようです。
Cookie 以外も上記の値でマスクされていました。
これは便利です!
しかし、HAR Sanitizer の懸念点として、Web サイトに機密情報が含まれている HAR ファイルをアップロードするというリスクがあります。
もし HAR ファイルの内容を第三者に盗まれると、AWS 環境への不正アクセスなどが行われる危険があります。
そこで、ローカル環境で実行できるツールについて調査したところ、2 つ目に紹介するツールが見つかったので紹介します。
置換ツール 2 harsanitizer-docker
名前の通り、先ほど紹介した HAR Sanitizer を Docker 環境で使用できるようにしたツールです。
こちらは Google ではない個人の開発者の方の GitHub リポジトリだと思いますが、動作確認はできたので紹介します。
前提として、Docker のインストールが必要なので、Docker のインストールは Docker のドキュメント を参考に実施してください。
harsanitizer-docker の中身は HAR Sanitizer と同じだったので、やることは README に書いてある通り、docker run
コマンドを実行するだけです。
$ docker run -d -p 8080:8080 scottmcmaster/harsanitizer:1.1
コンテナが起動したら、ローカルホストの 8080 番ポートにアクセスします。
以下の通り、ローカル環境でも HAR Sanitizer にアクセスできることが確認できました。
あとは HAR Sanitizer と同様の手順なので、これで Web サイトに HAR ファイルをアップロードすることなく機密情報をマスクすることができます。
参考までに Cloud9 で起動する際の手順についても紹介します。
- Cloud9 の EC2 環境を作成します。
- ターミナルで
docker run -d -p 8080:8080 scottmcmaster/harsanitizer:1.1
コマンドを実行します。 - コマンド実行終了後、Preview Runnnig Application をクリックします。
- プレビュー状態でも HAR Sanitizer は使用できますが、画面を大きくした場合には画面右上の別タブで開くアイコンをクリックしてください。
置換ツール 3 cloudflare/har-sanitizer
Cloudflare の GitHub でも har-sanitizer が提供されていました。
必要な手順は以下の通りです。
$ git clone https://github.com/cloudflare/har-sanitizer.git
$ cd har-sanitizer
$ npm run dev
なお、concurrently に関するエラーが発生した場合は concurrently もインストールしてください。
$ npm i concurrently
$ npm run dev
実行が成功した場合、以下のようにローカルの URL が表示されるのでアクセスします。
➜ Local: http://127.0.0.1:3000/
余談
HAR ファイルの機密情報を一括でマスクする方法について調査していたのは私だけではなかったです。
上記の参考サイトではコマンドで置換する方法も紹介されていましたので、コマンドが好きな方は参考サイトをご覧ください。
まとめ
今回は HAR ファイルの機密情報をマスクするツールについて紹介しました。
HAR ファイルには予期せず機密情報が含まれている場合もありますので、会社や個人の情報を守るためにも、マスクツールなどはうまく使っていきましょう。
本記事が参考になれば幸いです。
参考資料
- google/har-sanitizer
- scottmcmaster/harsanitizer-docker: Docker image build for har-sanitizer
- cloudflare/har-sanitizer
- HARファイルの取得について | DevelopersIO
- AWS サポートケース用の HAR ファイルとコンソールログの作成 | AWS re:Post
- 技術的なお問い合わせに関するガイドライン
- Docker ドキュメント日本語化プロジェクト — Docker-docs-ja 24.0 ドキュメント
- ステップ 1: 環境を作成する - AWS Cloud9
- Docker tutorial for AWS Cloud9 - AWS Cloud9
- jq - How to remove Cookie value from HAR file before sharing it with another person - Stack Overflow
- Do not include cookies in HAR files [40441005] - Chromium
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。